package psd.model;

import java.util.List;



public abstract class Rule {

	
	private String id ;
	private String name = getClass().getName();
	private String ruleClass = getClass().getName();
	private String ruleSetName;
	private String message;
	private String description;
	private int priority;
	private List<Bug> bugsFound;
	
	public Rule() {

	}

	/**
	 * @see Rule#getId()
	 */
	public String getId() {
		return id;
	}

	/**
	 * @see Rule#setId(String)
	 */
	public void setId(String id) {
		this.id = name;
	}
	/**
	 * @see Rule#getName()
	 */
	public String getName() {
		return name;
	}

	/**
	 * @see Rule#setName(String)
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @see Rule#getRuleClass()
	 */
	public String getRuleClass() {
		return ruleClass;
	}

	/**
	 * @see Rule#setRuleClass(String)
	 */
	public void setRuleClass(String ruleClass) {
		this.ruleClass = ruleClass;
	}

	/**
	 * @see Rule#getRuleSetName()
	 */
	public String getRuleSetName() {
		return ruleSetName;
	}

	/**
	 * @see Rule#setRuleSetName(String)
	 */
	public void setRuleSetName(String ruleSetName) {
		this.ruleSetName = ruleSetName;
	}

	/**
	 * @see Rule#getMessage()
	 */
	public String getMessage() {
		return message;
	}

	/**
	 * @see Rule#setMessage(String)
	 */
	public void setMessage(String message) {
		this.message = message;
	}

	/**
	 * @see Rule#getDescription()
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * @see Rule#setDescription(String)
	 */
	public void setDescription(String description) {
		this.description = description;
	}
	
	/**
	 * @see Rule#setPriority(int)
	 */
	public void setPriority(int priority) {
		this.priority = priority;
	}
	
	/**
	 * @see Rule#getPriority()
	 */
	public int getPriority() {
		return priority;
	}
	
	public abstract List<Bug> execute();
}
